Binary Rewriting without Relocation Information
نویسندگان
چکیده
Binary rewriting softwares transform executables by maintaining the original binary’s functionality, while improving it in one or more metrics, such as runtime performance, energy use, memory use, security, and reliability. Existing static binary rewriters are unable to rewrite binaries that do not contain relocation information, which is typically discarded by linkers unless specifically instructed otherwise. Unfortunately, most deployed binaries lack such information; hence they cannot be statically rewritten at all. We present a new approach to binary rewriting capable of rewriting binaries statically without relocation information. This is the first technology that allows for application of complex static transformations to any binary. This technology extends the power of binary rewriting technology past developers and into the hands of end-users. This technology has been incorporated into a working prototype known as SecondWrite, which has been used to rewrite and apply optimizations to a subset of SPEC benchmarks. Tests yielded reasonable overheads, with an average speedup of 27% for non-optimized binaries, and an average slowdown of 7% for optimized versions. Our tool can be used as a platform for complex optimization and security enhancements of any binary for the first time ever.
منابع مشابه
BISTRO: Binary Component Extraction and Embedding for Software Security Applications
In software security and malware analysis, researchers often need to directly manipulate binary program – benign or malicious – without source code. A useful pair of binary manipulation primitives are binary functional component extraction and embedding, for extracting a functional component from a binary program and for embedding a functional component in a binary program, respec tively. Such...
متن کاملAlgebraic Matching of Vulnerabilities in a Low-Level Code
This paper explores the algebraic matching approach for detection of vulnerabilities in binary codes. The algebraic programming system is used for implementing this method. It is anticipated that models of vulnerabilities and programs to be verified are presented as behavior algebra and action language specifications. The methods of algebraic matching are based on rewriting rules and techniques...
متن کاملHeq: A Coq library for Heterogeneous Equality
We give an introduction to the library Heq, which provides a set of tactics to manipulate heterogeneous equality and explicit coercion, such as rewriting of heterogeneous equality and elimination and relocation of explicit coercions.
متن کاملDynamic Reconstruction of Relocation Information for Stripped Binaries
Address Space Layout Randomization (ASLR) is a widely used technique for the prevention of code reuse attacks. The basic concept of ASLR is to randomize the base address of executable modules at load time. Changing the load address of modules is also often needed for resolving conflicts among shared libraries with the same preferred base address. In Windows, loading a module at an arbitrary add...
متن کاملFPGate: The Last Building Block For A Practical CFI Solution
We propose and evaluate a new protection mechanism for indirect call and jump instructions in binaries, which we call FPGate. FPGate stops attacks targeting function pointers by limiting indirect transfers to only those targets that are legal in the original program. When deployed together with other existing lightweight protections, FPGate can provide a level of protection comparable to CFI (C...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010